package Test29;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

//Instant时间戳
/*
static Instant now( )                           获取当前时间的Instant对象（标准时间）
static Instant ofXxxx ( long epochMilli)        根据（秒/毫秒/纳秒）获取Instant对象
ZonedDateTime atzone( zoneId zone)              指定时区
boolean isXxx ( Instant otherInstant)           判断系列的方法
Instant minusXxx( long millisToSubtract)        减少时间系列的方法
Instant plusXxx( long millisToSubtract)         增加时间系列的方法
 */
public class Test08 {
    public static void main(String[] args) {

        //1、获取当前时间的Instant对象（标准时间）
        Instant now = Instant.now();
        System.out.println(now);

        System.out.println("------------------------------------------");

        //2、根据（秒/毫秒/纳秒）获取Instant对象
        Instant instant1 = Instant.ofEpochMilli(0L);
        System.out.println(instant1);

        Instant instant2 = Instant.ofEpochSecond(1L);
        System.out.println(instant2);

        Instant instant3 = Instant.ofEpochSecond(1L, 1000000000L);
        System.out.println(instant3);

        System.out.println("------------------------------------------");

        //3、指定时区
        ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
        System.out.println(time);

        System.out.println("------------------------------------------");

        //4、isXxx 判断
        Instant instant4 = Instant.ofEpochMilli(0L);
        Instant instant5 = Instant.ofEpochMilli(1000L);

        //5、用于时间的判断
        //isBefore：判断调用者代表的时间是否在参数表示时间的前面
        boolean before = instant4.isBefore(instant5);
        System.out.println(before);//true

        //isAfter：判断调用者代表的时间是否在参数表示时间的前面
        boolean after = instant4.isAfter(instant5);
        System.out.println(after);//false

        System.out.println("------------------------------------------");

        //6、减少时间系列的方法
        Instant instant6 = Instant.ofEpochMilli(3000L);
        System.out.println(instant6);//1970-01-01T00:00:03Z

        Instant instant7 = instant6.minusSeconds(1L);
        System.out.println(instant7);//1970-01-01T00:00:02Z

        Instant instant8 = instant6.plusSeconds(3L);
        System.out.println(instant8);//1970-01-01T00:00:06Z
    }
}
